Event Sourcing - Greg Young - GOTO 2014 {youtube}

NoteGPT 요약본

연사는 소프트웨어 개발 분야의 저명한 인사들과 마주했던 CUON 2007에서 이벤트 소싱에 대해 발표했던 경험을 회상합니다. 그는 긴장한 가운데서도 이벤트 소싱의 중요성을 강조하며 금융 및 보험과 같은 분야에서 정확한 로그의 필요성에서 비롯된 이벤트 소싱의 기원을 설명했습니다. 이벤트 소싱은 일시적인 상태가 아닌 사실적인 이벤트의 저장을 강조하는 방법론으로, 시스템 내의 모든 변경 사항을 기록하여 역사적 맥락을 잃을 위험 없이 다시 살펴볼 수 있도록 보장합니다. 이는 데이터 수정을 허용하여 기록 손실로 이어질 수 있는 기존 데이터베이스와 크게 대조됩니다.

발표자는 이벤트 소싱을 포괄적인 이벤트 이력에서 상태를 도출하여 데이터 관리의 투명성과 철저함을 가능하게 하는 시스템으로 정의합니다. 그는 구매 주문서와 같은 관련성 있는 예를 들어 이벤트가 현재 상태로 이어지는 과정을 설명하고 영구 로그가 과거의 의사 결정에 대한 귀중한 인사이트를 제공한다고 주장합니다. 스키마 마이그레이션 처리와 이벤트 소싱을 통한 보고 개선과 같은 실질적인 문제를 강조하는 한편, 순차적 쓰기 성능과 보안을 비롯한 이점에 대해서도 강조합니다.

이어서 발표자는 스냅샷, 쿼리 복잡성, 다양한 스토리지 모델 사용의 의미와 같은 과제에 대해 논의합니다. 그는 읽기 및 쓰기 프로세스를 분리하여 성능을 향상시키는 수단으로 명령 쿼리 책임 분리(CQRS)의 개념을 소개합니다. 이 대담에서는 새로운 기술 도입과 이로 인해 발생할 수 있는 잠재적 복잡성 사이의 균형을 탐색합니다.

전반적으로 이벤트 소싱과 관련된 과제와 복잡성, 특히 레거시 시스템과 관련된 복잡성을 인정하면서도 이벤트 소싱을 활용하면 특히 최신 소프트웨어 아키텍처에서 데이터 무결성, 성능 및 보안을 강화하는 데 상당한 이점을 얻을 수 있다는 메시지는 분명합니다.

하이라이트
🎤 개인적인 경험: 연사가 CUON 2007에서 영향력 있는 업계 인사들 앞에서 발표하던 당시의 긴장을 회상합니다.
📊 이벤트 소싱 정의: 이벤트 소싱은 일시적인 상태가 아닌 사실적인 이벤트를 저장하여 역사적 맥락을 보존하는 것을 강조합니다.
💼 업계 관련성: 이벤트 소싱은 정확한 기록 보관에 의존하는 금융, 보험, 법률 및 의료와 같은 전문직에서 활용되고 있습니다.
📈 이벤트 소싱의 이점: 이 방법은 순차적 쓰기를 통해 데이터 무결성을 개선하고 보안을 강화하며 강력한 성능을 제공합니다.
📚 쿼리의 어려움: 수많은 이벤트를 재생하면 데이터 검색이 복잡해져 맞춤형 읽기 모델을 사용해야 할 수 있습니다.
💡 CQRS의 장점: 읽기 모델과 쓰기 모델을 분리하면 시스템 효율성이 향상되고 운영이 명확해집니다.
⏳ 데이터 처리의 미래: 데이터 스토리지 비용의 예상되는 변화와 데이터 관리에 필요한 전략적 계획에 대해 논의합니다.
주요 인사이트
🤯 이벤트 소싱의 역사적 맥락: 이벤트 소싱은 현대의 발명품이 아니라 회계 및 기록 보관의 고대 관행에서 그 원리를 찾을 수 있으며, 다양한 영역에 걸쳐 그 본질적인 가치를 나타냅니다.

⚖️ 복잡성과 기능의 균형 맞추기: 조직은 이벤트 소싱을 도입할 때 불필요한 복잡성에 주의해야 합니다. 새로운 시스템을 통합하면서 명확한 아키텍처 선택을 유지하는 것은 지나치게 복잡한 설정으로 인해 발생하는 함정을 피하는 데 매우 중요합니다.

🚀 스냅샷 및 이벤트 스트림 관리: 성능을 위해 스냅샷을 사용하는 것의 매력과 동시성 문제 및 잠재적인 기록 데이터 무결성 손실을 비교 검토해야 하며, 스냅샷을 이벤트 스트림에 직접 연결하여 복잡성을 줄이는 것이 이상적입니다.

📉 쿼리 최적화의 필요성: 이벤트 소싱은 쿼리를 복잡하게 만들어 잠재적인 성능 저하로 이어집니다. 최적화된 읽기 모델을 사용하면 시스템이 효율성을 유지하면서 이벤트 기반 로깅의 철저한 이점을 누릴 수 있습니다.

🔄 명령 쿼리 책임 분리(CQRS): 명령과 쿼리 책임을 분리하는 CQRS의 강력한 기능은 시스템이 읽기 및 쓰기 작업을 독립적으로 최적화하여 더 나은 성능을 제공할 수 있는 발전적인 경로를 제공합니다.

💡 점진적인 마이그레이션 전략: 이벤트 소스 시스템 구현을 위한 권장 사항은 마이그레이션 과정에서 비즈니스 연속성과 데이터 무결성을 보장하기 위해 새로운 개발과 함께 레거시 시스템을 유지 관리하는 점진적인 전환 접근 방식을 제안합니다.

📈 미래 지향적인 데이터 처리 시스템: 데이터 스토리지 비용과 수요의 변화가 불가피한 상황에서 효율적인 이벤트 소싱 기술을 활용하면 기업은 데이터 관련성과 접근성을 보장하면서 진화하는 기술 환경에 적응할 수 있는 위치를 선점할 수 있습니다.